package com.linkgie.galaxyframework.service.organization.data;

import com.linkgie.galaxyframework.data.EntityObject;
import com.linkgie.galaxyframework.data.AuditableObject;

/**
 * 职位（岗位）；<p>
 * 
 * 职位表示了在组织中的某个特定部门中对“职务”( {@link Job} )的具体落实，是由部门若干成员承担；
 * 
 * 职位表示了某种工作任务分工、职权和责任；<p>
 * 
 * 因此，系统中可根据职位进行权限分配；
 * 
 * @author huanghaiquan
 *
 */
public interface Position extends PositionDefinition, EntityObject, AuditableObject{
	
	/**
	 * 唯一标识；<p>
	 * 
	 * 职位的唯一标识由系统分配，标识数据对象的唯一性；
	 */
	@Override
	String getId();
	

	/**
	 * 是否开放；
	 * 
	 * @return
	 */
	boolean isOpen();
	
	/**
	 * 所属部门；
	 * 
	 * @return
	 */
	Department getDepartment();

	/**
	 * 所属职务；
	 * 
	 * @return
	 */
	Job getJob();
	
}
